1. Technical Field
This invention generally relates to computer systems, and more specifically relates to apparatus and methods for debugging computer programs.
2. Background Art
Since the dawn of the computer age, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware, such as semiconductors and circuit boards, and software, also known as computer programs. As advances in semiconductor processing and computer architecture push the performance of the computer hardware higher, more sophisticated computer software has evolved to take advantage of the higher performance of the hardware, resulting in computer systems today that are much more powerful than just a few years ago.
As the sophistication and complexity of computer software increase, the more difficult the software is to debug. Debugging is the process of finding problems, or “bugs”, during the development of a computer program. Most modern programming environments include a debugger that provides tools for testing and debugging a computer program. Known debuggers allow the user to set one or more breakpoints in the computer program, which are points where the execution of the computer program is stopped so that the state of the program can be examined to verify that the program executed as designed.
Some computer programs store data to and retrieve data from one or more databases. A computer program typically interacts with a database by providing a query. A database manager processes the query, and returns data in the database that matches the query. Because the computer program can only access data in the database via the database manager, the state and condition of the database is not directly controlled by or accessible to the computer program. For this reason, there is currently no way to stop execution of a computer program based on some specified state of the database, or some specified conditions that exist in the database or in the database manager. Without a mechanism and method for halting execution of a computer program based on specified state or conditions in a database, the computer industry will continue to suffer from inefficient methods and tools for debugging computer programs that access databases.